var tekN=0; //Текущий номер
var autoSum=0; // Определяет что высчитывать на основе введенной суммы

//Разблокировка интерфейса.
$(document).ajaxStop($.unblockUI); 

/**
 * Удаляет покупки из таблицы.
 */
function ajaxS(){
	$("#buys tr:gt(0)").remove();
}

/**
 * Заполняет поля в соответствии с информацией о последней покупке введенного товара.
 * 
 * @param li Введенный товар
 */
function selectItem(li) {
	$.getJSON("/controllers/getFormData.php", {good: li.selectValue, chto:""}, function(json) {
		$("#cat").val(json.cat);
		$("#col").val(json.col);
		$("#cena").val(json.price);
		$("#shop").val(json.name);
		$("#addr").val(json.addr);
		setSum();
	});		
}

/**
 * Подгружает адрес для магазина.
 * 
 * @param li Введенный магазин.
 */
function selectShop(li) {
	$.getJSON("/controllers/getFormData.php", {good: li.selectValue, chto:"addr"}, function(json) {
		$("#addr").val(json.addr);
	});		
}

/**
 * Высчитывает сумму, основываясь на цене и количестве.
 */
function setSum(){
	if ($("#col").val()!="" && $("#cena").val()!=""){
		var sum=parseFloat($("#col").val())*parseFloat($("#cena").val());
		$("#sum").val(sum);
		var sumS=sum+"";
		if (sumS.indexOf(".")>-1){
			$("#sum").val(sumS.substring(0,sumS.indexOf(".")+3));
		}
	}
	else{
		$("#sum").val("");
	}
}

/**
 * Проверяет данные в форме.
 * 
 * @return  true - если все верно, false - в противном случае.
 */
function checkData(){
	if ($("#buys tr:gt(0)").size()<1){
		echoMsg("Не введены товары.", "err");
		return false;
	}
	if ($("#date").val()=="") {
		echoMsg("Не введена дата покупки.", "err");
		return false;
	}
	if ($("#shop").val()=="") {
		echoMsg("Не введен магазин.", "err");
		return false;
	}
	tekN=0;
	return true;
}

$(document).ready(function(){

//Посылка формы Ajax'ом
	submForm();

//Навешивание автокомплита.
$("#item").autocomplete("/controllers/autocomplete.php", {
	delay:100,
	minChars:1,
	matchSubset:1,
	matchContains:1,
	maxItemsToShow:10,
	onItemSelect:selectItem,
	extraParams:{tab:"goods", field:"item"}
}); 

$("#cat").autocomplete("/controllers/autocomplete.php", {
	delay:100,
	minChars:1,
	matchSubset:1,
	matchContains:1,
	maxItemsToShow:10,
	extraParams:{tab:"categ", field:"cat"}
}); 


$("#shop").autocomplete("/controllers/autocomplete.php", {
	delay:100,
	minChars:1,
	matchSubset:1,
	matchContains:1,
	maxItemsToShow:10,
	onItemSelect:selectShop,
	extraParams:{tab:"shops", field:"name"}
}); 

$("#addr").autocomplete("/controllers/autocomplete.php", {
	delay:100,
	minChars:0,
	matchSubset:1,
	matchContains:1,
	maxItemsToShow:10,
	extraParams:{tab:"address", field:"addr"}
}); 

//Вставка строки в таблицу.
$("#addRow").click(function(){
	if ($("#item").val()!="" && $("#cat").val()!="" && $("#col").val()!="" && $("#sum").val()!=""){
		$("#buys").append(	"<tr>" +
								"<td>"+(++tekN)+"</td>" +
								"<td><input type=\"text\" name=\"buy"+tekN+"[item]\" value=\""+$("#item").val()+"\" /></td>" +
								"<td><input type=\"text\" name=\"buy"+tekN+"[cat]\" value=\""+$("#cat").val()+"\" /></td>" +
								"<td><input type=\"text\" name=\"buy"+tekN+"[col]\" value=\""+$("#col").val()+"\" /></td>" +
								"<td><input type=\"text\" name=\"buy"+tekN+"[cena]\" value=\""+$("#cena").val()+"\" /></td>" +
								"<td class=\"summa\"><input type=\"text\" name=\"buy"+tekN+"[sum]\" value=\""+$("#sum").val()+"\" /></td>" +
								"<td><input type=\"button\" class=\"delete\" value=\"delete\" /></td>" +
							"</tr>");
	}
	var sum=parseFloat($("#sumB").val())+parseFloat($("#sum").val());
	$("#sumB").val(sum);
	$("#item").val("");
	$("#col").val("");
	$("#cena").val("");
	$("#sum").val("");
});

$("#col").keyup(setSum);
$("#cena").keyup(setSum);

//Выссчитывает цену или количество на основе суммы.
$("#sum").keyup(function(){
	if ($("#sum").val()!="" && $("#cena").val()!="" && $("#col").val()!=""){
		if (autoSum==0){
			var sum=parseFloat($("#sum").val())/parseFloat($("#cena").val());
			$("#col").val(sum);
			var sumS=sum+"";
			if (sumS.indexOf(".")>-1){
				$("#col").val(sumS.substring(0,sumS.indexOf(".")+4));
			}
			autoSum=0;
		}
		else{
			var sum=parseFloat($("#sum").val())/parseFloat($("#col").val());
			$("#cena").val(sum);
			var sumS=sum+"";
			if (sumS.indexOf(".")>-1){
				$("#cena").val(sumS.substring(0,sumS.indexOf(".")+3));
			}
			autoSum=1;
		}
		return;
	}
	if ($("#sum").val()!="" && $("#cena").val()!=""){
		var sum=parseFloat($("#sum").val())/parseFloat($("#cena").val());
		$("#col").val(sum);
		var sumS=sum+"";
		if (sumS.indexOf(".")>-1){
			$("#col").val(sumS.substring(0,sumS.indexOf(".")+4));
		}
		autoSum=0;
		return;
	}
	if ($("#sum").val()!="" && $("#col").val()!=""){
		var sum=parseFloat($("#sum").val())/parseFloat($("#col").val());
		$("#cena").val(sum);
		var sumS=sum+"";
		if (sumS.indexOf(".")>-1){
			$("#cena").val(sumS.substring(0,sumS.indexOf(".")+3));
		}
		autoSum=1;
		return;
	}
	if ($("#sum").val()==""){
		if ($("#col").val()!="" && $("#cena").val()!=""){
			var sum=parseFloat($("#col").val())*parseFloat($("#cena").val());
			$("#sum").val(sum);
			var sumS=sum+"";
			if (sumS.indexOf(".")>-1){
				$("#sum").val(sumS.substring(0,sumS.indexOf(".")+3));
			}
		}
	}
});

//Навешивание обработчика удаления строки таблицы.
$(".delete").live("click",function() {
	var parent = $(this).parent().parent();
	var sum=parseFloat($("#sumB").val())-parseFloat(parent.find(".summa").find("input").val());
	$("#sumB").val(sum);
	parent.remove();
    return false;

});

});

